/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package BoardGameToTreeIntegration.Rules;

import BoardGame.Board;

import MocaTree.File;

import MocaTree.Node;
import TGGRuntime.AbstractRule;
import TGGRuntime.IsAppropriateRuleResult;
import TGGRuntime.PerformRuleResult;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Board Rule</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see BoardGameToTreeIntegration.Rules.RulesPackage#getBoardRule()
 * @model
 * @generated
 */
public interface BoardRule extends EObject, AbstractRule {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect translated elements\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0 #//@ownedActivityNode.0/@storyPattern/@linkVariable.1 #//@ownedActivityNode.0/@storyPattern/@linkVariable.2 #//@ownedActivityNode.0/@storyPattern/@linkVariable.3 #//@ownedActivityNode.0/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\" name=\"file\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToFile\"\r\n          name=\"b2f\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.7\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"solve CSP\"\r\n      outgoing=\"#//@ownedActivityEdge.9\" incoming=\"#//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;Variable&lt;String> literal0 = CspFactory.eINSTANCE.createVariable(&quot;literal0&quot;, true, csp);&#xD;&#xA;literal0.setValue(&quot;BOARD&quot;);&#xD;&#xA;Variable&lt;Integer> literal1 = CspFactory.eINSTANCE.createVariable(&quot;literal1&quot;, true, csp);&#xD;&#xA;literal1.setValue(0);&#xD;&#xA;&#xD;&#xA;// Create implicit parameters&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;Variable&lt;String> var_root_name = CspFactory.eINSTANCE.createVariable(&quot;root.name&quot;, csp);&#xD;&#xA;Variable&lt;Integer> var_root_index = CspFactory.eINSTANCE.createVariable(&quot;root.index&quot;, csp);&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;String> eq = new Eq&lt;String>();Eq&lt;Integer> eq_0 = new Eq&lt;Integer>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;csp.getConstraints().add(eq_0);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.solve(var_root_name,literal0);&#xD;&#xA;eq_0.solve(var_root_index,literal1);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"find context\"\r\n      outgoing=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.7\" incoming=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"perform transformation\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1 #//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToFile\"\r\n          name=\"b2f\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/MocaTree#//TreeElement/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_root_name.getValue()\"/>\r\n        </attributeAssignment>\r\n        <attributeAssignment attribute=\"http://www.moflon.org/MocaTree#//TreeElement/index\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_root_index.getValue()\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3 #//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"bookkeeping for edges\"\r\n      outgoing=\"#//@ownedActivityEdge.4\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0 #//@ownedActivityNode.6/@storyPattern/@linkVariable.3 #//@ownedActivityNode.6/@storyPattern/@linkVariable.6 #//@ownedActivityNode.6/@storyPattern/@linkVariable.9 #//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.5 #//@ownedActivityNode.6/@storyPattern/@linkVariable.8\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2f\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.7 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2n\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2f__source__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2f__source__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2f__target__file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2f__target__file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__file__file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.6\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.7 #//@ownedActivityNode.6/@storyPattern/@linkVariable.8\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;root__file__file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2n__source__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.9\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2n__source__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2n__target__root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.13 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2n__target__root&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"check\"\r\n      outgoing=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.9\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.8\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.8\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.3\"\r\n      guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.6\" target=\"#//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.9\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.4\"\r\n      guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.1\"\r\n      guard=\"END\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.8\" target=\"#//@ownedActivityNode.9\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.7\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      PerformRuleResult ruleResult = null;\n      BoardToFile b2f = null;\n      BoardToNode b2n = null;\n      File file = null;\n      Node root = null;\n      Edge b2f__target__file = null;\n      Edge b2n__target__root = null;\n      Edge root__file__file = null;\n      Edge b2f__source__board = null;\n      Edge b2n__source__board = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern find context\n      try \n      {\n         fujaba__Success = false; \n\n         // check object board is really bound\n         JavaSDM.ensure ( board != null );\n         // Create CSP\n         CSP csp = CspFactory.eINSTANCE.createCSP();\n\n         // Create literals\n         Variable<String> literal0 = CspFactory.eINSTANCE.createVariable(\"literal0\", true, csp);\n         literal0.setValue(\"BOARD\");\n         Variable<Integer> literal1 = CspFactory.eINSTANCE.createVariable(\"literal1\", true, csp);\n         literal1.setValue(0);\n\n         // Create implicit parameters\n\n         // Create explicit parameters\n\n         // Create unbound variables\n         Variable<String> var_root_name = CspFactory.eINSTANCE.createVariable(\"root.name\", csp);\n         Variable<Integer> var_root_index = CspFactory.eINSTANCE.createVariable(\"root.index\", csp);\n\n         // Create constraints\n         Eq<String> eq = new Eq<String>();Eq<Integer> eq_0 = new Eq<Integer>();\n\n         csp.getConstraints().add(eq);\n         csp.getConstraints().add(eq_0);\n\n         // Solve CSP\n         eq.solve(var_root_name,literal0);\n         eq_0.solve(var_root_index,literal1);\n\n         fujaba__Success = csp.check();\n         if (fujaba__Success)\n         {\n            // story pattern perform transformation\n            try \n            {\n               fujaba__Success = false; \n\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // create object b2f\n               b2f = BoardGameToTreeIntegrationFactory.eINSTANCE.createBoardToFile();\n               // create object b2n\n               b2n = BoardGameToTreeIntegrationFactory.eINSTANCE.createBoardToNode();\n               // create object file\n               file = MocaTreeFactory.eINSTANCE.createFile();\n               // create object root\n               root = MocaTreeFactory.eINSTANCE.createNode();\n               // assign attribute root\n               root.setName (var_root_name.getValue());\n               // assign attribute root\n               root.setIndex (var_root_index.getValue());\n               // create link\n               b2f.setSource( board);\n\n               // create link\n               b2n.setSource( board);\n\n               // create link\n               root.setFile( file);\n\n               // create link\n               b2f.setTarget( file);\n\n               // create link\n               b2n.setTarget( root);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            // story pattern collect translated elements\n            try \n            {\n               fujaba__Success = false; \n\n               // check object b2f is really bound\n               JavaSDM.ensure ( b2f != null );\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check object ruleResult is really bound\n               JavaSDM.ensure ( ruleResult != null );\n               // assign attribute ruleResult\n               ruleResult.setSuccess (true);\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,file,\"createdElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f,\"createdLinkElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,board,\"translatedElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n,\"createdLinkElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root,\"createdElements\");\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            // story pattern bookkeeping for edges\n            try \n            {\n               fujaba__Success = false; \n\n               // check object b2f is really bound\n               JavaSDM.ensure ( b2f != null );\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check object ruleResult is really bound\n               JavaSDM.ensure ( ruleResult != null );\n               // check isomorphic binding between objects b2n and b2f\n               JavaSDM.ensure ( !b2n.equals (b2f) );\n\n               // check isomorphic binding between objects board and b2f\n               JavaSDM.ensure ( !board.equals (b2f) );\n\n               // check isomorphic binding between objects file and b2f\n               JavaSDM.ensure ( !file.equals (b2f) );\n\n               // check isomorphic binding between objects root and b2f\n               JavaSDM.ensure ( !root.equals (b2f) );\n\n               // check isomorphic binding between objects board and b2n\n               JavaSDM.ensure ( !board.equals (b2n) );\n\n               // check isomorphic binding between objects file and b2n\n               JavaSDM.ensure ( !file.equals (b2n) );\n\n               // check isomorphic binding between objects root and b2n\n               JavaSDM.ensure ( !root.equals (b2n) );\n\n               // check isomorphic binding between objects file and board\n               JavaSDM.ensure ( !file.equals (board) );\n\n               // check isomorphic binding between objects root and board\n               JavaSDM.ensure ( !root.equals (board) );\n\n               // check isomorphic binding between objects root and file\n               JavaSDM.ensure ( !root.equals (file) );\n\n               // create object b2f__target__file\n               b2f__target__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2n__target__root\n               b2n__target__root = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object root__file__file\n               root__file__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2f__source__board\n               b2f__source__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2n__source__board\n               b2n__source__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // assign attribute b2f__source__board\n               b2f__source__board.setName (\"b2f__source__board\");\n               // assign attribute b2f__target__file\n               b2f__target__file.setName (\"b2f__target__file\");\n               // assign attribute root__file__file\n               root__file__file.setName (\"root__file__file\");\n               // assign attribute b2n__source__board\n               b2n__source__board.setName (\"b2n__source__board\");\n               // assign attribute b2n__target__root\n               b2n__target__root.setName (\"b2n__target__root\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f__target__file,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n__target__root,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root__file__file,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f__source__board,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n__source__board,\"createdEdges\");\n               // create link\n               b2f__source__board.setTrg( board);\n\n               // create link\n               b2n__source__board.setTrg( board);\n\n               // create link\n               b2f__target__file.setTrg( file);\n\n               // create link\n               root__file__file.setTrg( file);\n\n               // create link\n               b2f__target__file.setSrc( b2f);\n\n               // create link\n               b2f__source__board.setSrc( b2f);\n\n               // create link\n               root__file__file.setSrc( root);\n\n               // create link\n               b2n__target__root.setTrg( root);\n\n               // create link\n               b2n__source__board.setSrc( b2n);\n\n               // create link\n               b2n__target__root.setSrc( b2n);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            return ruleResult;\n\n         }\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	PerformRuleResult perform_FWD_Board_0(Board board);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"set success\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.1\" incoming=\"#//@ownedActivityEdge.2\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EOperation\"\r\n          name=\"performOperation\" incomingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1 #//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"SDMLanguage.expressions:ComparisonExpression\"\r\n              operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\"\r\n                value=\"&quot;perform_FWD_Board_0&quot;\"/>\r\n            <leftExpression xsi:type=\"SDMLanguage.patterns.patternExpressions:AttributeValueExpression\"\r\n                object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" attribute=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass\"\r\n          name=\"eClass\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <bindingExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect elements to be translated\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"test core match\"\r\n      outgoing=\"#//@ownedActivityEdge.4 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingOperator=\"CREATE\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect context nodes\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" bindingState=\"BOUND\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.4\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.1\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.5\" target=\"#//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.0\"\r\n      guard=\"END\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleResult = null;\n      Match match = null;\n      Iterator fujaba__IterRuleResultToMatch = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_FWD_Board_0\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         // create link\n         ruleResult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern test core match\n      try \n      {\n         fujaba__Success = false; \n\n         // check object board is really bound\n         JavaSDM.ensure ( board != null );\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n         // create link\n         ruleResult.getMatches().add(match);\n\n         // story pattern collect elements to be translated\n         try \n         {\n            fujaba__Success = false; \n\n            // check object board is really bound\n            JavaSDM.ensure ( board != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,board,\"toBeTranslatedElements\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story pattern collect context nodes\n         try \n         {\n            fujaba__Success = false; \n\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern set success\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link matches from ruleResult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleResultToMatch = ruleResult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleResultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleResultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleResult\n         ruleResult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_FWD_Board_0(Board board);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect translated elements\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0 #//@ownedActivityNode.0/@storyPattern/@linkVariable.1 #//@ownedActivityNode.0/@storyPattern/@linkVariable.2 #//@ownedActivityNode.0/@storyPattern/@linkVariable.3 #//@ownedActivityNode.0/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\" name=\"file\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToFile\"\r\n          name=\"b2f\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.7\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"solve CSP\"\r\n      outgoing=\"#//@ownedActivityEdge.9\" incoming=\"#//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;Variable&lt;String> literal0 = CspFactory.eINSTANCE.createVariable(&quot;literal0&quot;, true, csp);&#xD;&#xA;literal0.setValue(&quot;BOARD&quot;);&#xD;&#xA;Variable&lt;Integer> literal1 = CspFactory.eINSTANCE.createVariable(&quot;literal1&quot;, true, csp);&#xD;&#xA;literal1.setValue(0);&#xD;&#xA;&#xD;&#xA;// Create implicit parameters&#xD;&#xA;Variable&lt;String> var_root_name = CspFactory.eINSTANCE.createVariable(&quot;root.name&quot;, true, csp);&#xD;&#xA;var_root_name.setValue(root.getName());&#xD;&#xA;Variable&lt;Integer> var_root_index = CspFactory.eINSTANCE.createVariable(&quot;root.index&quot;, true, csp);&#xD;&#xA;var_root_index.setValue(root.getIndex());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;String> eq = new Eq&lt;String>();Eq&lt;Integer> eq_0 = new Eq&lt;Integer>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;csp.getConstraints().add(eq_0);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.solve(var_root_name,literal0);&#xD;&#xA;eq_0.solve(var_root_index,literal1);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"find context\"\r\n      outgoing=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.7\" incoming=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"perform transformation\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.3\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1 #//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToFile\"\r\n          name=\"b2f\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3 #//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED000574000E726F6F742E6765744E616D652829\"\r\n            type=\"String\" attribute=\"name\" objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED000574000F726F6F742E676574496E6465782829\"\r\n            type=\"Integer\" attribute=\"index\" objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"bookkeeping for edges\"\r\n      outgoing=\"#//@ownedActivityEdge.4\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0 #//@ownedActivityNode.6/@storyPattern/@linkVariable.3 #//@ownedActivityNode.6/@storyPattern/@linkVariable.6 #//@ownedActivityNode.6/@storyPattern/@linkVariable.9 #//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.5 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2f\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2n\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2f__source__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2f__source__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2f__target__file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2f__target__file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__file__file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.6\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2n__source__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.9\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2n__source__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2n__target__root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.13 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2n__target__root&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"check\"\r\n      outgoing=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.9\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.8\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.8\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.3\"\r\n      guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.6\" target=\"#//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.9\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.4\"\r\n      guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.1\"\r\n      guard=\"END\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.8\" target=\"#//@ownedActivityNode.9\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.7\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      PerformRuleResult ruleResult = null;\n      Board board = null;\n      BoardToFile b2f = null;\n      BoardToNode b2n = null;\n      Edge b2f__source__board = null;\n      Edge b2f__target__file = null;\n      Edge b2n__target__root = null;\n      Edge root__file__file = null;\n      Edge b2n__source__board = null;\n      Node root = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern find context\n      try \n      {\n         fujaba__Success = false; \n\n         // check object file is really bound\n         JavaSDM.ensure ( file != null );\n         // bind object\n         root = file.getRootNode ();\n\n         // check object root is really bound\n         JavaSDM.ensure ( root != null );\n\n         // Create CSP\n         CSP csp = CspFactory.eINSTANCE.createCSP();\n\n         // Create literals\n         Variable<String> literal0 = CspFactory.eINSTANCE.createVariable(\"literal0\", true, csp);\n         literal0.setValue(\"BOARD\");\n         Variable<Integer> literal1 = CspFactory.eINSTANCE.createVariable(\"literal1\", true, csp);\n         literal1.setValue(0);\n\n         // Create implicit parameters\n         Variable<String> var_root_name = CspFactory.eINSTANCE.createVariable(\"root.name\", true, csp);\n         var_root_name.setValue(root.getName());\n         Variable<Integer> var_root_index = CspFactory.eINSTANCE.createVariable(\"root.index\", true, csp);\n         var_root_index.setValue(root.getIndex());\n\n         // Create explicit parameters\n\n         // Create unbound variables\n\n         // Create constraints\n         Eq<String> eq = new Eq<String>();Eq<Integer> eq_0 = new Eq<Integer>();\n\n         csp.getConstraints().add(eq);\n         csp.getConstraints().add(eq_0);\n\n         // Solve CSP\n         eq.solve(var_root_name,literal0);\n         eq_0.solve(var_root_index,literal1);\n\n         fujaba__Success = csp.check();\n         if (fujaba__Success)\n         {\n            // story pattern perform transformation\n            try \n            {\n               fujaba__Success = false; \n\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check link rootNode from root to file\n               JavaSDM.ensure (file.equals (root.getFile ()\n               ));\n\n               // create object board\n               board = BoardGameFactory.eINSTANCE.createBoard();\n               // create object b2f\n               b2f = BoardGameToTreeIntegrationFactory.eINSTANCE.createBoardToFile();\n               // create object b2n\n               b2n = BoardGameToTreeIntegrationFactory.eINSTANCE.createBoardToNode();\n               // create link\n               b2f.setSource( board);\n\n               // create link\n               b2n.setSource( board);\n\n               // create link\n               b2f.setTarget( file);\n\n               // create link\n               b2n.setTarget( root);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            // story pattern collect translated elements\n            try \n            {\n               fujaba__Success = false; \n\n               // check object b2f is really bound\n               JavaSDM.ensure ( b2f != null );\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check object ruleResult is really bound\n               JavaSDM.ensure ( ruleResult != null );\n               // assign attribute ruleResult\n               ruleResult.setSuccess (true);\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,file,\"translatedElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n,\"createdLinkElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root,\"translatedElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,board,\"createdElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f,\"createdLinkElements\");\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            // story pattern bookkeeping for edges\n            try \n            {\n               fujaba__Success = false; \n\n               // check object b2f is really bound\n               JavaSDM.ensure ( b2f != null );\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check object ruleResult is really bound\n               JavaSDM.ensure ( ruleResult != null );\n               // check isomorphic binding between objects b2n and b2f\n               JavaSDM.ensure ( !b2n.equals (b2f) );\n\n               // check isomorphic binding between objects board and b2f\n               JavaSDM.ensure ( !board.equals (b2f) );\n\n               // check isomorphic binding between objects file and b2f\n               JavaSDM.ensure ( !file.equals (b2f) );\n\n               // check isomorphic binding between objects root and b2f\n               JavaSDM.ensure ( !root.equals (b2f) );\n\n               // check isomorphic binding between objects board and b2n\n               JavaSDM.ensure ( !board.equals (b2n) );\n\n               // check isomorphic binding between objects file and b2n\n               JavaSDM.ensure ( !file.equals (b2n) );\n\n               // check isomorphic binding between objects root and b2n\n               JavaSDM.ensure ( !root.equals (b2n) );\n\n               // check isomorphic binding between objects file and board\n               JavaSDM.ensure ( !file.equals (board) );\n\n               // check isomorphic binding between objects root and board\n               JavaSDM.ensure ( !root.equals (board) );\n\n               // check isomorphic binding between objects root and file\n               JavaSDM.ensure ( !root.equals (file) );\n\n               // create object b2f__source__board\n               b2f__source__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2f__target__file\n               b2f__target__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2n__target__root\n               b2n__target__root = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object root__file__file\n               root__file__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2n__source__board\n               b2n__source__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // assign attribute b2f__source__board\n               b2f__source__board.setName (\"b2f__source__board\");\n               // assign attribute b2f__target__file\n               b2f__target__file.setName (\"b2f__target__file\");\n               // assign attribute root__file__file\n               root__file__file.setName (\"file\");\n               // assign attribute b2n__source__board\n               b2n__source__board.setName (\"b2n__source__board\");\n               // assign attribute b2n__target__root\n               b2n__target__root.setName (\"b2n__target__root\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f__source__board,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f__target__file,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n__target__root,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root__file__file,\"translatedEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n__source__board,\"createdEdges\");\n               // create link\n               b2n__source__board.setTrg( board);\n\n               // create link\n               b2f__source__board.setTrg( board);\n\n               // create link\n               b2f__target__file.setTrg( file);\n\n               // create link\n               root__file__file.setTrg( file);\n\n               // create link\n               b2f__source__board.setSrc( b2f);\n\n               // create link\n               b2f__target__file.setSrc( b2f);\n\n               // create link\n               root__file__file.setSrc( root);\n\n               // create link\n               b2n__target__root.setTrg( root);\n\n               // create link\n               b2n__source__board.setSrc( b2n);\n\n               // create link\n               b2n__target__root.setSrc( b2n);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            return ruleResult;\n\n         }\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	PerformRuleResult perform_BWD_File_0(File file);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"set success\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.1\" incoming=\"#//@ownedActivityEdge.2\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EOperation\"\r\n          name=\"performOperation\" incomingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1 #//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"SDMLanguage.expressions:ComparisonExpression\"\r\n              operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\"\r\n                value=\"&quot;perform_BWD_File_0&quot;\"/>\r\n            <leftExpression xsi:type=\"SDMLanguage.patterns.patternExpressions:AttributeValueExpression\"\r\n                object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" attribute=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass\"\r\n          name=\"eClass\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <bindingExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect elements to be translated\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\" name=\"file\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__file__file\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.3 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"test core match\"\r\n      outgoing=\"#//@ownedActivityEdge.4 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect context nodes\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" bindingState=\"BOUND\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.4\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.1\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.5\" target=\"#//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.0\"\r\n      guard=\"END\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleResult = null;\n      Match match = null;\n      Edge root__file__file = null;\n      Node root = null;\n      Iterator fujaba__IterRuleResultToMatch = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_BWD_File_0\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         // create link\n         ruleResult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern test core match\n      try \n      {\n         fujaba__Success = false; \n\n         // check object file is really bound\n         JavaSDM.ensure ( file != null );\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // bind object\n         root = file.getRootNode ();\n\n         // check object root is really bound\n         JavaSDM.ensure ( root != null );\n\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n         // create link\n         ruleResult.getMatches().add(match);\n\n         // story pattern collect elements to be translated\n         try \n         {\n            fujaba__Success = false; \n\n            // check object file is really bound\n            JavaSDM.ensure ( file != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // check object root is really bound\n            JavaSDM.ensure ( root != null );\n            // create object root__file__file\n            root__file__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n            // assign attribute root__file__file\n            root__file__file.setName (\"file\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,root,\"toBeTranslatedElements\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,file,\"toBeTranslatedElements\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,root__file__file,\"toBeTranslatedEdges\");\n            // create link\n            root__file__file.setTrg( file);\n\n            // create link\n            root__file__file.setSrc( root);\n\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story pattern collect context nodes\n         try \n         {\n            fujaba__Success = false; \n\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern set success\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link matches from ruleResult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleResultToMatch = ruleResult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleResultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleResultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleResult\n         ruleResult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_BWD_File_0(File file);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect translated elements\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0 #//@ownedActivityNode.0/@storyPattern/@linkVariable.1 #//@ownedActivityNode.0/@storyPattern/@linkVariable.2 #//@ownedActivityNode.0/@storyPattern/@linkVariable.3 #//@ownedActivityNode.0/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\" name=\"file\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToFile\"\r\n          name=\"b2f\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.7\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"solve CSP\"\r\n      outgoing=\"#//@ownedActivityEdge.9\" incoming=\"#//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;Variable&lt;String> literal0 = CspFactory.eINSTANCE.createVariable(&quot;literal0&quot;, true, csp);&#xD;&#xA;literal0.setValue(&quot;BOARD&quot;);&#xD;&#xA;Variable&lt;Integer> literal1 = CspFactory.eINSTANCE.createVariable(&quot;literal1&quot;, true, csp);&#xD;&#xA;literal1.setValue(0);&#xD;&#xA;&#xD;&#xA;// Create implicit parameters&#xD;&#xA;Variable&lt;String> var_root_name = CspFactory.eINSTANCE.createVariable(&quot;root.name&quot;, true, csp);&#xD;&#xA;var_root_name.setValue(root.getName());&#xD;&#xA;Variable&lt;Integer> var_root_index = CspFactory.eINSTANCE.createVariable(&quot;root.index&quot;, true, csp);&#xD;&#xA;var_root_index.setValue(root.getIndex());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;String> eq = new Eq&lt;String>();Eq&lt;Integer> eq_0 = new Eq&lt;Integer>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;csp.getConstraints().add(eq_0);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.solve(var_root_name,literal0);&#xD;&#xA;eq_0.solve(var_root_index,literal1);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"find context\"\r\n      outgoing=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.7\" incoming=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"perform transformation\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.3\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1 #//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToFile\"\r\n          name=\"b2f\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.2\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3 #//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED000574000E726F6F742E6765744E616D652829\"\r\n            type=\"String\" attribute=\"name\" objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED000574000F726F6F742E676574496E6465782829\"\r\n            type=\"Integer\" attribute=\"index\" objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"bookkeeping for edges\"\r\n      outgoing=\"#//@ownedActivityEdge.4\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0 #//@ownedActivityNode.6/@storyPattern/@linkVariable.3 #//@ownedActivityNode.6/@storyPattern/@linkVariable.6 #//@ownedActivityNode.6/@storyPattern/@linkVariable.9 #//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.5 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2f\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2n\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2f__source__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2f__source__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2f__target__file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2f__target__file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__file__file\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.6\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2n__source__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.9\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2n__source__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"b2n__target__root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.13 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;b2n__target__root&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.7\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"check\"\r\n      outgoing=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.9\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.8\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.8\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.3\"\r\n      guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.6\" target=\"#//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.9\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.4\"\r\n      guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.1\"\r\n      guard=\"END\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.8\" target=\"#//@ownedActivityNode.9\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.7\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      PerformRuleResult ruleResult = null;\n      Board board = null;\n      BoardToNode b2n = null;\n      BoardToFile b2f = null;\n      Edge b2f__source__board = null;\n      Edge root__file__file = null;\n      Edge b2n__source__board = null;\n      Edge b2n__target__root = null;\n      Edge b2f__target__file = null;\n      File file = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern find context\n      try \n      {\n         fujaba__Success = false; \n\n         // check object root is really bound\n         JavaSDM.ensure ( root != null );\n         // bind object\n         file = root.getFile ();\n\n         // check object file is really bound\n         JavaSDM.ensure ( file != null );\n\n         // Create CSP\n         CSP csp = CspFactory.eINSTANCE.createCSP();\n\n         // Create literals\n         Variable<String> literal0 = CspFactory.eINSTANCE.createVariable(\"literal0\", true, csp);\n         literal0.setValue(\"BOARD\");\n         Variable<Integer> literal1 = CspFactory.eINSTANCE.createVariable(\"literal1\", true, csp);\n         literal1.setValue(0);\n\n         // Create implicit parameters\n         Variable<String> var_root_name = CspFactory.eINSTANCE.createVariable(\"root.name\", true, csp);\n         var_root_name.setValue(root.getName());\n         Variable<Integer> var_root_index = CspFactory.eINSTANCE.createVariable(\"root.index\", true, csp);\n         var_root_index.setValue(root.getIndex());\n\n         // Create explicit parameters\n\n         // Create unbound variables\n\n         // Create constraints\n         Eq<String> eq = new Eq<String>();Eq<Integer> eq_0 = new Eq<Integer>();\n\n         csp.getConstraints().add(eq);\n         csp.getConstraints().add(eq_0);\n\n         // Solve CSP\n         eq.solve(var_root_name,literal0);\n         eq_0.solve(var_root_index,literal1);\n\n         fujaba__Success = csp.check();\n         if (fujaba__Success)\n         {\n            // story pattern perform transformation\n            try \n            {\n               fujaba__Success = false; \n\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check link rootNode from root to file\n               JavaSDM.ensure (file.equals (root.getFile ()\n               ));\n\n               // create object board\n               board = BoardGameFactory.eINSTANCE.createBoard();\n               // create object b2n\n               b2n = BoardGameToTreeIntegrationFactory.eINSTANCE.createBoardToNode();\n               // create object b2f\n               b2f = BoardGameToTreeIntegrationFactory.eINSTANCE.createBoardToFile();\n               // create link\n               b2n.setSource( board);\n\n               // create link\n               b2f.setSource( board);\n\n               // create link\n               b2f.setTarget( file);\n\n               // create link\n               b2n.setTarget( root);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            // story pattern collect translated elements\n            try \n            {\n               fujaba__Success = false; \n\n               // check object b2f is really bound\n               JavaSDM.ensure ( b2f != null );\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check object ruleResult is really bound\n               JavaSDM.ensure ( ruleResult != null );\n               // assign attribute ruleResult\n               ruleResult.setSuccess (true);\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root,\"translatedElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f,\"createdLinkElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n,\"createdLinkElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,file,\"translatedElements\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,board,\"createdElements\");\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            // story pattern bookkeeping for edges\n            try \n            {\n               fujaba__Success = false; \n\n               // check object b2f is really bound\n               JavaSDM.ensure ( b2f != null );\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n               // check object file is really bound\n               JavaSDM.ensure ( file != null );\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n               // check object ruleResult is really bound\n               JavaSDM.ensure ( ruleResult != null );\n               // check isomorphic binding between objects b2n and b2f\n               JavaSDM.ensure ( !b2n.equals (b2f) );\n\n               // check isomorphic binding between objects board and b2f\n               JavaSDM.ensure ( !board.equals (b2f) );\n\n               // check isomorphic binding between objects file and b2f\n               JavaSDM.ensure ( !file.equals (b2f) );\n\n               // check isomorphic binding between objects root and b2f\n               JavaSDM.ensure ( !root.equals (b2f) );\n\n               // check isomorphic binding between objects board and b2n\n               JavaSDM.ensure ( !board.equals (b2n) );\n\n               // check isomorphic binding between objects file and b2n\n               JavaSDM.ensure ( !file.equals (b2n) );\n\n               // check isomorphic binding between objects root and b2n\n               JavaSDM.ensure ( !root.equals (b2n) );\n\n               // check isomorphic binding between objects file and board\n               JavaSDM.ensure ( !file.equals (board) );\n\n               // check isomorphic binding between objects root and board\n               JavaSDM.ensure ( !root.equals (board) );\n\n               // check isomorphic binding between objects root and file\n               JavaSDM.ensure ( !root.equals (file) );\n\n               // create object b2f__source__board\n               b2f__source__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object root__file__file\n               root__file__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2n__source__board\n               b2n__source__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2n__target__root\n               b2n__target__root = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // create object b2f__target__file\n               b2f__target__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n               // assign attribute b2f__source__board\n               b2f__source__board.setName (\"b2f__source__board\");\n               // assign attribute b2f__target__file\n               b2f__target__file.setName (\"b2f__target__file\");\n               // assign attribute root__file__file\n               root__file__file.setName (\"file\");\n               // assign attribute b2n__source__board\n               b2n__source__board.setName (\"b2n__source__board\");\n               // assign attribute b2n__target__root\n               b2n__target__root.setName (\"b2n__target__root\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f__source__board,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root__file__file,\"translatedEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n__source__board,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2n__target__root,\"createdEdges\");\n               // create link\n               org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,b2f__target__file,\"createdEdges\");\n               // create link\n               b2f__source__board.setTrg( board);\n\n               // create link\n               b2n__source__board.setTrg( board);\n\n               // create link\n               root__file__file.setTrg( file);\n\n               // create link\n               b2f__target__file.setTrg( file);\n\n               // create link\n               b2f__source__board.setSrc( b2f);\n\n               // create link\n               b2f__target__file.setSrc( b2f);\n\n               // create link\n               b2n__target__root.setTrg( root);\n\n               // create link\n               root__file__file.setSrc( root);\n\n               // create link\n               b2n__target__root.setSrc( b2n);\n\n               // create link\n               b2n__source__board.setSrc( b2n);\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n\n            return ruleResult;\n\n         }\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	PerformRuleResult perform_BWD_Node_0(Node root);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"set success\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.1\" incoming=\"#//@ownedActivityEdge.2\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EOperation\"\r\n          name=\"performOperation\" incomingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1 #//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"SDMLanguage.expressions:ComparisonExpression\"\r\n              operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\"\r\n                value=\"&quot;perform_BWD_Node_0&quot;\"/>\r\n            <leftExpression xsi:type=\"SDMLanguage.patterns.patternExpressions:AttributeValueExpression\"\r\n                object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" attribute=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass\"\r\n          name=\"eClass\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <bindingExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect elements to be translated\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\" name=\"file\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__file__file\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.3 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;file&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"test core match\"\r\n      outgoing=\"#//@ownedActivityEdge.4 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"BoardRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(root.name, &quot;BOARD&quot;)eq(root.index, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//File\"\r\n          name=\"file\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"file\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"String\" attribute=\"name\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000722424F41524422\"\r\n            type=\"String\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"root\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect context nodes\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" bindingState=\"BOUND\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.4\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.1\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.5\" target=\"#//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.0\"\r\n      guard=\"END\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleResult = null;\n      Match match = null;\n      Edge root__file__file = null;\n      File file = null;\n      Iterator fujaba__IterRuleResultToMatch = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_BWD_Node_0\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         // create link\n         ruleResult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern test core match\n      try \n      {\n         fujaba__Success = false; \n\n         // check object root is really bound\n         JavaSDM.ensure ( root != null );\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // bind object\n         file = root.getFile ();\n\n         // check object file is really bound\n         JavaSDM.ensure ( file != null );\n\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n         // create link\n         ruleResult.getMatches().add(match);\n\n         // story pattern collect elements to be translated\n         try \n         {\n            fujaba__Success = false; \n\n            // check object file is really bound\n            JavaSDM.ensure ( file != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // check object root is really bound\n            JavaSDM.ensure ( root != null );\n            // create object root__file__file\n            root__file__file = TGGRuntimeFactory.eINSTANCE.createEdge();\n            // assign attribute root__file__file\n            root__file__file.setName (\"file\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,file,\"toBeTranslatedElements\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,root,\"toBeTranslatedElements\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,root__file__file,\"toBeTranslatedEdges\");\n            // create link\n            root__file__file.setTrg( file);\n\n            // create link\n            root__file__file.setSrc( root);\n\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story pattern collect context nodes\n         try \n         {\n            fujaba__Success = false; \n\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern set success\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link matches from ruleResult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleResultToMatch = ruleResult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleResultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleResultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleResult\n         ruleResult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_BWD_Node_0(Node root);

} // BoardRule
